#include <stdio.h>

#if 0

检查文件流是否有错误发生

相关函数

    clearerr，perror

表头文件

    #include<stdio.h>

定义函数

    int ferror(FILE *stream);

函数说明

    ferror()用来检查参数stream所指定的文件流是否发生了错误情况，如有错误发生则返回非0值。

返回值

    如果文件流有错误发生则返回非0值。

#endif


int main(int argc, char *argv[])
{
    int i;
    FILE *fp;
    if(argc != 2)   {
        printf("input file name...\n");
        return 1;
    }

    fp = fopen(argv[1], "wb");  

    //打开文件，但是文件为空所以无法读取
    fgetc(fp);                   

    //从文件中读出一个字符，文件为空，所以会报错
    printf("ferror:%d\n",ferror(fp));   // 输出错误信息

    fputs("aabbccddee123456",fp);   // 向文件中写入一些数据
    fclose(fp);             // 关闭文件

    fp = fopen(*(argv+1),"r");    // 再次打开文件
    fseek(fp,0,SEEK_END);       // 使用fseek定位到文件末位
    
    fgetc(fp);    //读

    if(feof(fp) == 1) {   //如果是到了末尾数出
        printf("end of the file.\n");
    }

    clearerr(fp); //清除当前错误
    
    printf("ferror的返回值为%d feof的返回值为%d\n", ferror(fp), feof(fp));  //再次打印错误信息
    
    fclose(fp);   //关闭文件
    
    return 0;
}



